home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / sound / jack.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.8 KB  |  76 lines

  1. #ifndef __SOUND_JACK_H
  2. #define __SOUND_JACK_H
  3.  
  4. /*
  5.  *  Jack abstraction layer
  6.  *
  7.  *  Copyright 2008 Wolfson Microelectronics plc
  8.  *
  9.  *
  10.  *   This program is free software; you can redistribute it and/or modify
  11.  *   it under the terms of the GNU General Public License as published by
  12.  *   the Free Software Foundation; either version 2 of the License, or
  13.  *   (at your option) any later version.
  14.  *
  15.  *   This program is distributed in the hope that it will be useful,
  16.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *   GNU General Public License for more details.
  19.  *
  20.  *   You should have received a copy of the GNU General Public License
  21.  *   along with this program; if not, write to the Free Software
  22.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  23.  *
  24.  */
  25.  
  26. #include <sound/core.h>
  27.  
  28. struct input_dev;
  29.  
  30. /**
  31.  * Jack types which can be reported.  These values are used as a
  32.  * bitmask.
  33.  */
  34. enum snd_jack_types {
  35.     SND_JACK_HEADPHONE    = 0x0001,
  36.     SND_JACK_MICROPHONE    = 0x0002,
  37.     SND_JACK_HEADSET    = SND_JACK_HEADPHONE | SND_JACK_MICROPHONE,
  38. };
  39.  
  40. struct snd_jack {
  41.     struct input_dev *input_dev;
  42.     int registered;
  43.     int type;
  44.     const char *id;
  45.     char name[100];
  46. };
  47.  
  48. #ifdef CONFIG_SND_JACK
  49.  
  50. int snd_jack_new(struct snd_card *card, const char *id, int type,
  51.          struct snd_jack **jack);
  52. void snd_jack_set_parent(struct snd_jack *jack, struct device *parent);
  53.  
  54. void snd_jack_report(struct snd_jack *jack, int status);
  55.  
  56. #else
  57.  
  58. static inline int snd_jack_new(struct snd_card *card, const char *id, int type,
  59.                    struct snd_jack **jack)
  60. {
  61.     return 0;
  62. }
  63.  
  64. static inline void snd_jack_set_parent(struct snd_jack *jack,
  65.                        struct device *parent)
  66. {
  67. }
  68.  
  69. static inline void snd_jack_report(struct snd_jack *jack, int status)
  70. {
  71. }
  72.  
  73. #endif
  74.  
  75. #endif
  76.